#ifndef Base_Object_h
#define Base_Object_h

#include "BaseModule.h"
#include "Error.h"

SG_NAMESPACE_OPEN

namespace Base
{
    /**
     * @brief The root of the class hierarchy.
     *
     * Object is the super class for most other objects is our system and provide a set of methods
     * and many low level services to subclasses.
     * 
     * @author nene
     * @date December, 2024.
     */
    class BASE_EXPORT Object
    {
      public:
        /// construction
        Object ();
        /// destruction
        virtual ~Object ();

        /// Return a hash code value for the object.
        virtual int hashCode () const;
    };
}

SG_NAMESPACE_CLOSE

#endif  // Base_Object_h